// 2014-03-10 Tyrghen
//---------------------------------------------
// Usage:
//  100 call edt_fnc_completed;
//  [100] call edt_fnc_completed;
//---------------------------------------------
// Purpose:
// Sets the status to "true" on the given objective. Within the TMF you can set the status of "numerical" objectives using edt_fnc_completed and edt_fnc_canceled.
// Those objectives use numerical values for the ease of use. If you want to work with text names, use edt_fnc_setVar and edt_fnc_getVar.
// Internally the numerical objectives are stored as regular vars in the format: tmf_edt_{value} so they can be read and written with edt_fnc_setVar and edt_fnc_getVar too.
// They can also be used as JIP variables for the other functions like:
// [comm_tower,getPos comm_tower,100] call edt_fnc_destroy;
// They can also be used to trigger task completion:
// ["STR_TASK_DESTROY","Created","STR_TASK_DESTROY_DESC","",100] call edt_fnc_task;
// 
// Parameters:
// The numerical value of the objective to complete
//
// Returns:
// Nothing
//---------------------------------------------
// Objectif:
// Assigne la valeur "true" à l'objectif donné. Dans le TMF, on peut modifier le statut d'un objectif "numérique" en utilisant edt_fnc_completed et edt_fnc_canceled.
// Ces objectifs utilisent des valeurs numériques par facilité. Si vous préférez travailler avec des textes, utilisez edt_fnc_setVar et edt_fnc_getVar.
// En interne, les objectifs "numériques" sont stockés comme des variables classiques sous la forme: tmf_edt_{valeur}, donc ils peuvent être lus ou modifiés en utilisant edt_fnc_getVar et edt_fnc_setVar.
// Ils peuvent aussi être utilisés comme variables JIP dans les autres fonctions de la manière suivante:
// [tour_comm,getPos tour_comm,100] call edt_fnc_destroy;
// Ils peuvent donc aussi être utilisé pour gérer l'achèvement de tâches:
// ["STR_TACHE_DETRUIRE","Created","STR_TACHE_DETRUIRE_DESC","",100] call edt_fnc_task;
//
// Paramètres:
// La valeur numérique de l'objectif à accomplir 
//
// Renvoie:
// Rien
//---------------------------------------------

//#define __FORCE_TRACE__
//#define __FORCE_DEBUG__
//#define __FORCE_INFO__
#define THIS_FILE "editor\fn_completed.sqf"
#include <tmf_constants.h>
#include <tmf_macros.h>

// See if its legitimate to put this back in
//if (!isServer) exitWith {TRACE("Not Server")};

TRACE_1("Start",_this);
TMFPROFILERSTART;

private ["_param","_objective_name"];

_param = _this;
if (IS_ARRAY(_this)) then {
	if (count _this > 0) then {
		_param = _this select 0;
	};
};
if (IS_SCALAR(_param)) then {
	_objective_name = format [TMF_EDITOR_OBJECTIVE,_param];
	[TMF_SERVER_INSTANCE_ID,_objective_name,true] spawn FFUNC(setMissionJIPVar);
	[QGVAR(all_var), [TMF_SERVER_INSTANCE_ID,_objective_name,true],THIS_FILE] call FFUNC(callEvent);
};

TRACE("End");
TMFPROFILERSTOP;